核心变更说明:本文基于2018年版全面升级,更新了2026年最新的编程入门资源、AI辅助学习工具、现代Web开发技术栈,整合了freeCodeCamp、The Odin Project等优质免费课程,以及Codecademy、Coursera等交互式平台。
本文档将为你提供零基础编程启蒙的完整指南。
如果你从来没有接触过程序语言,这里给你两个方面的教程,一个偏后端,一个偏前端。对从零基础开始的人来说,最重要的是能够对编程有兴趣,而要对编程有兴趣,就要有成就感。而成就感又来自于用程序打造东西。
2026年的今天,学习编程的环境比以往任何时候都要好:
根据 Stack Overflow Developer Survey 2025 和 TIOBE Index 2026:
| 特性 | Python | JavaScript/TypeScript |
|---|---|---|
| 学习曲线 | ⭐⭐ 平缓 | ⭐⭐⭐ 中等 |
| 语法简洁度 | 非常高 | 较高 |
| 即时反馈 | 强(REPL) | 强(浏览器控制台) |
| 应用领域 | AI/数据/Web/自动化 | Web全栈/移动端 |
| 就业市场 | 🔥🔥🔥 | 🔥🔥🔥🔥 |
| 社区资源 | 极其丰富 | 极其丰富 |
| 2026流行度排名 | #1 (TIOBE) | #1 (GitHub新项目) |
应用场景:
应用场景:
| 平台 | 特点 | 费用 | 适合程度 |
|---|---|---|---|
| freeCodeCamp | 完全免费,项目驱动,社区活跃 | 免费 | ⭐⭐⭐⭐⭐ |
| Codecademy | 交互式练习,即时反馈 | 基础免费 | ⭐⭐⭐⭐⭐ |
| LeetCode | 算法题库,面试准备 | 基础免费 | ⭐⭐⭐⭐ |
| Exercism | 导师代码审查 | 免费 | ⭐⭐⭐⭐ |
| Hyperskill (JetBrains) | 项目式学习,游戏化 | 订阅制 | ⭐⭐⭐⭐ |
| 课程 | 平台 | 时长 | 特点 |
|---|---|---|---|
| Python for Everybody | Coursera/YouTube | 20小时 | 密歇根大学出品,系统全面 |
| Automate the Boring Stuff with Python | freeCodeCamp/书 | 15小时 | 实用导向,学完就能用 |
| CS50's Introduction to Programming with Python | Harvard/edX | 12小时 | 哈佛品质,思维训练 |
| 程序员的Python基础课 | B站/慕课网 | 10小时 | 中文讲解,适合国内学习者 |
| 书名 | 作者 | 难度 | 特点 |
|---|---|---|---|
| 《Python编程:从入门到实践》 | Eric Matthes | ⭐⭐ | 项目驱动,适合零基础 |
| 《像计算机科学家一样思考Python》 | Allen Downey | ⭐⭐⭐ | 培养计算思维 |
| 《流畅的Python》 | Luciano Ramalho | ⭐⭐⭐⭐ | 进阶必读,深入理解语言特性 |
让我们从最经典的"Hello World"开始:
# hello.py - 你的第一个Python程序
print("Hello, World! 🎉")
print("欢迎来到编程的世界!")
# 尝试一些简单的计算
name = input("请输入你的名字: ")
age = input("请输入你的年龄: ")
print(f"\n你好, {name}!")
print(f"明年你就 {int(age) + 1} 岁了")
# 一个简单的小游戏:猜数字
import random
secret_number = random.randint(1, 100)
attempts = 0
print("\n🎮 我已经想好了一个1-100之间的数字,来猜猜看!")
while True:
guess = int(input("输入你的猜测: "))
attempts += 1
if guess < secret_number:
print("太小了!再试一次 📈")
elif guess > secret_number:
print("太大了!再试一次 📉")
else:
print(f"🎉 恭喜你!你用了 {attempts} 次猜对了!")
break运行方式:
hello.pypython hello.py根据 State of JS 2025 Survey:
💡 建议:直接从TypeScript开始学习,而不是先学JavaScript再转TypeScript。TypeScript是JavaScript的超集,学会了TS就等于同时掌握了JS。
| 平台 | 特点 | 费用 |
|---|---|---|
| freeCodeCamp (Responsive Web Design) | 免费认证,项目驱动 | 免费 |
| JavaScript.info | 最全面的JS教程,中文版完善 | 免费 |
| The Odin Project | 全栈课程,社区支持 | 免费 |
| Scrimba | 互动视频,可以暂停编辑代码 | 基础免费 |
| Frontend Masters | 专业级深度课程 | 订阅制 |
| 书名 | 作者 | 特点 |
|---|---|---|
| 《JavaScript高级程序设计》(第4版) | Matt Frisbie | JS圣经,权威参考 |
| 《你不知道的JavaScript》 | Kyle Simpson | 深入理解JS核心机制 |
| 《Effective TypeScript》 | Dan Vanderkam | TS最佳实践 |
| 《Learning TypeScript》 | Josh Goldberg | O'Reilly出品,现代化教学 |
MDN Web Docs: https://developer.mozilla.org/zh-CN/
TypeScript官方手册: https://www.typescriptlang.org/docs/
创建你的第一个网页:
<!-- index.html -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的第一个网页</title>
<style>
body {
font-family: system-ui, -apple-system, sans-serif;
max-width: 800px;
margin: 50px auto;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.container {
background: rgba(255,255,255,0.95);
padding: 40px;
border-radius: 16px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
color: #333;
}
h1 { color: #667eea; }
button {
background: #667eea;
color: white;
border: none;
padding: 12px 24px;
border-radius: 8px;
cursor: pointer;
font-size: 16px;
transition: transform 0.2s;
}
button:hover { transform: scale(1.05); }
#output { margin-top: 20px; padding: 16px; background: #f5f5f5; border-radius: 8px; }
</style>
</head>
<body>
<div class="container">
<h1>🎉 欢迎来到我的网页!</h1>
<p>这是我的第一个Web项目,虽然简单但充满意义!</p>
<button onclick="greet()">点击打招呼</button>
<button onclick="showTime()">显示当前时间</button>
<button onclick="changeBackground()">换一个背景色</button>
<div id="output"></div>
</div>
<script>
function greet() {
const name = prompt('请输入你的名字:');
if (name) {
document.getElementById('output').innerHTML =
`<h3>Hello, ${name}! 👋</h3><p>欢迎来到编程的世界!</p>`;
}
}
function showTime() {
const now = new Date();
document.getElementById('output').innerHTML =
`<h3>🕐 当前时间</h3><p>${now.toLocaleString('zh-CN')}</p>`;
}
const colors = ['#667eea', '#764ba2', '#f093fb', '#f5576c', '#4facfe'];
let colorIndex = 0;
function changeBackground() {
colorIndex = (colorIndex + 1) % colors.length;
document.body.style.background =
`linear-gradient(135deg, ${colors[colorIndex]} 0%, ${colors[(colorIndex + 1) % colors.length]} 100%)`;
}
</script>
</body>
</html>运行方式:
index.html| 工具 | 特点 | 推荐指数 | 适用场景 |
|---|---|---|---|
| Visual Studio Code | 免费插件生态强大,AI集成 | ⭐⭐⭐⭐⭐ | 万能选择 |
| Cursor | AI原生IDE | ⭐⭐⭐⭐⭐ | AI辅助开发 |
| Neovim | 高效键盘操作,可定制性强 | ⭐⭐⭐⭐ | 高级用户 |
| JetBrains IDEs | 专业功能强大,智能提示 | ⭐⭐⭐⭐⭐ | Java/Python/Go专业开发 |
💡 新手建议:从VS Code开始,配合以下必备插件:
- Python / Pylance(Python开发)
- ES7+ React/Redux/React-Native snippets(前端开发)
- GitHub Copilot(AI辅助)
- Error Lens(内联错误提示)
- GitLens(Git增强)
- Thunder Client(API测试,替代Postman)
| 工具 | 特点 |
|---|---|
| Warp Terminal | 现代化终端,AI命令补全 |
| iTerm2 (macOS) | 功能强大的macOS终端 |
| Windows Terminal | Windows官方现代终端 |
| Oh My Zsh | Zsh框架,美化终端 |
Git是必须掌握的工具!
# 初始设置
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# 创建第一个仓库
mkdir my-first-project
cd my-first-project
git init
# 基本工作流
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/yourusername/my-first-project.git
git push -u origin main学习资源:
虽然Windows和macOS占据着桌面市场,但作为程序员,了解Linux是必不可少的。大多数服务器都运行Linux,云原生技术也基于Linux。
| 阶段 | 内容 | 时间 |
|---|---|---|
| 基础 | 文件系统导航、常用命令(ls, cd, cp, mv, rm) | 1周 |
| 进阶 | 权限管理、文本处理(grep, sed, awk)、管道 | 2周 |
| 实战 | Shell脚本编写、进程管理、网络命令 | 2-3周 |
# 文件操作
ls -la # 列出文件详情
cd ~ # 回到主目录
pwd # 显示当前路径
cp file1 file2 # 复制文件
mv old new # 重命名/移动
rm -rf dir # 强制删除目录(谨慎使用!)
# 查看内容
cat file.txt # 显示文件内容
less file.txt # 分页查看
head -n 20 file # 查看前20行
tail -f log.txt # 实时查看日志
# 搜索
grep "pattern" file # 在文件中搜索
find . -name "*.py" # 查找文件
# 系统信息
top # 查看进程
df -h # 磁盘使用情况
free -m # 内存使用情况为什么是Web而不是别的其他技术呢?因为你正身处于第三次工业革命的信息化浪潮中,在这个浪潮中,Web互联网是其中最大的发明,所以,这是任何一个程序员都不能错过的。
作用:定义网页的结构和内容
<!-- 基本结构示例 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>页面标题</title>
</head>
<body>
<!-- 语义化标签 -->
<header>网站头部</header>
<nav>导航栏</nav>
<main>
<article>
<h1>文章标题</h1>
<p>段落内容...</p>
</article>
<aside>侧边栏</aside>
</main>
<footer>页脚</footer>
</body>
</html>学习要点:
作用:控制网页的外观和布局
/* 现代CSS示例 */
.container {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 24px;
}
.card {
background: white;
border-radius: 12px;
padding: 24px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
}学习要点:
作用:让网页具有交互性
前面已有示例,这里强调几个关键概念:
// DOM操作 - 动态修改页面
const element = document.getElementById('myElement');
element.textContent = '新的内容';
element.classList.add('active');
// 事件处理
document.querySelector('button').addEventListener('click', () => {
console.log('按钮被点击了!');
});
// 异步获取数据
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('出错:', error);
}
}对于初学者,推荐以下几种后端技术栈:
| 技术栈 | 语言 | 框架 | 特点 | 推荐度 |
|---|---|---|---|---|
| FastAPI | Python | FastAPI | 自动生成文档,高性能 | ⭐⭐⭐⭐⭐ |
| Express/Koa | Node.js | Express | JavaScript全栈 | ⭐⭐⭐⭐ |
| Gin/Echo | Go | Gin | 高性能,并发强 | ⭐⭐⭐⭐ |
| Spring Boot | Java | Spring Boot | 企业级,生态成熟 | ⭐⭐⭐⭐ |
💡 2026建议:如果你学了Python,强烈推荐FastAPI作为后端入门框架。它:
- 简单易学,类似Flask
- 自动生成交互式API文档(Swagger UI)
- 基于ASGI,异步性能优秀
- 原生支持类型注解和数据验证
根据 DB-Engines Ranking 2026:
| 特性 | PostgreSQL 17 | MySQL 8.4 LTS / 9.x |
|---|---|---|
| 流行度排名 | #4 | #2 |
| 功能完整性 | 更强大 | 够用 |
| JSON支持 | 优秀 | 良好 |
| 并发处理 | MVCC更优 | 良好 |
| 开源协议 | 类MIT宽松协议(更自由) | GPL |
| 云服务支持 | 全面 | 全面 |
| 2026推荐 | ✅ 首选 | ✅ 可选 |
初学者建议:从SQLite开始(无需安装),然后过渡到PostgreSQL。
-- 创建用户表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 插入数据
INSERT INTO users (username, email, password_hash)
VALUES ('zhangsan', 'zhangsan@example.com', 'hashed_password');
-- 查询数据
SELECT id, username, email FROM users WHERE username = 'zhangsan';
-- 更新数据
UPDATE users SET email = 'new@email.com' WHERE id = 1;
-- 删除数据
DELETE FROM users WHERE id = 1;无论你用Python还是JavaScript,我希望你能做一个非常简单的Blog系统。这个项目将帮助你把所学知识串联起来。
基础功能:
技术要求:
这是你第一次接触真实的安全问题,非常重要:
密码存储
# ❌ 错误:明文存储密码
password = "123456"
# ✅ 正确:使用bcrypt哈希
import bcrypt
password_hash = bcrypt.hashpw(
password.encode('utf-8'),
bcrypt.gensalt()
)SQL注入防护
# ❌ 错误:字符串拼接(易受SQL注入攻击)
query = f"SELECT * FROM users WHERE name = '{user_input}'"
# ✅ 正确:使用参数化查询
query = "SELECT * FROM users WHERE name = %s"
cursor.execute(query, (user_input,))XSS防护
// ❌ 错误:直接插入用户输入
element.innerHTML = userInput;
// ✅ 正确:转义或使用textContent
element.textContent = userInput;
// 或使用DOMPurify库进行消毒完成基础功能后,可以尝试:
在这个AI时代,善用工具可以让学习效率翻倍:
| 工具 | 用途 | 价格 | 推荐场景 |
|---|---|---|---|
| ChatGPT/Claude | 概念解释、代码调试 | 免费版够用 | 日常答疑 |
| GitHub Copilot | 代码补全、生成 | $10/月 | 编程时实时辅助 |
| Cursor | AI驱动的IDE | 免费版可用 | 替代VS Code |
| v0.dev | UI组件生成 | 免费 | 快速生成界面 |
| Exa | 学术搜索 | 免费 | 查找论文资料 |
Prompt工程基础
好的提问示例:
"我是一个Python初学者,正在学习循环。
请用简单的例子解释for循环和while循环的区别,
并给出两个实际的使用场景。"让AI帮你Code Review
# 把你的代码发给AI,让它review
"请帮我review这段代码,
指出潜在的问题和改进建议,
我是一个初学者,请用通俗易懂的方式解释。"生成学习计划
"我想在3个月内学会Python Web开发,
目前零基础,每天能投入2小时。
请为我制定一个详细的学习计划,
包括每周的学习目标和实践项目。"⚠️ 重要提醒:AI是你的助手,不是替代品!
- 一定要自己动手写代码,不要直接复制AI生成的代码
- 理解每一行代码的含义,不懂就问
- 用AI来加速学习,而不是跳过学习过程
| 类别 | 资源名称 | 网址 | 特点 |
|---|---|---|---|
| 综合学习 | freeCodeCamp | https://www.freecodecamp.org/chinese/ | 完全免费,认证证书 |
| Python | Python官方教程 | https://docs.python.org/zh-cn/3/tutorial/ | 官方权威 |
| JavaScript | JavaScript.info | https://zh.javascript.info/ | 最全面的JS教程 |
| Web开发 | MDN Web Docs | https://developer.mozilla.org/zh-CN/ | Web技术圣经 |
| 算法 | LeetCode | https://leetcode.cn/ | 刷题神器 |
| Git | Learn Git Branching | https://learngitbranching.js.org/?locale=zh_CN | 可视化学习 |
| Linux | OverTheWire: Bandit | https://overthewire.org/wargames/bandit/ | 游戏化学习 |
| 类别 | 资源名称 | 价格 | 特点 |
|---|---|---|---|
| 视频 | Udemy | $10-15/门 | 经常打折,性价比高 |
| 专项课 | Coursera Specialization | 免费/订阅 | 大学级别课程 |
| 互动 | Codecademy Pro | $20/月 | 结构化学习路径 |
| 书籍 | 各类技术书籍 | ¥50-150/本 | 深入系统学习 |
| 阶段 | 内容 | 预估时间 | 每日投入 |
|---|---|---|---|
| Python基础 | 语法、数据结构、OOP | 6-8周 | 2-3小时 |
| JavaScript基础 | 语法、DOM、异步 | 6-7周 | 2-3小时 |
| Web开发入门 | 前后端结合 | 4-5周 | 2-3小时 |
| 综合项目 | Blog系统 | 4-5周 | 2-3小时 |
| 总计 | 从零到能做项目 | 20-25周(约5-6个月) | 持续学习 |
错误想法:"我想30天学会编程找到工作"
现实:
错误想法:"我看完了所有视频教程就会了"
现实:
错误想法:"我要同时学Python、Java、Go、Rust..."
现实:
错误想法:"这个报错解决不了,我不适合学编程"
现实:
错误想法:"框架才是最重要的,算法数据结构没用"
现实:
完成本阶段学习后,你应该能够:
下一篇文章将进入正式入门阶段,我们将讨论:
记住:编程学习就像马拉松,不是百米冲刺。保持好奇心,享受解决问题的过程,每一个bug修复都是进步,每一个项目完成都是里程碑。你已经迈出了第一步,继续加油!💪